Lambda-calcul et langages fonctionnels

نویسنده

  • Jean Goubault-Larrecq
چکیده

Ceci est la version 5 de la première partie du cours de lambda-calcul, datant du 22 février 2017. La version 4 datait du 02 juin 2014 (et contenait encore une erreur dans la démonstration du théorème de standardisation). La version 3 datait du 28 janvier 2011 (bizarrement, je n’avais pas remarqué l’erreur présente depuis dix ans dans la démonstration du théorème de standardisation. Merci à Arthur Milchior), la version 2 datait du 04 mars 2009. La première version datait du 02 août 1999. Un langage fonctionnel est juste un langage dans lequel la notion de fonction (procédure, sous-programme) est centrale. Cette définition vague recouvre les langages fonctionnels dits purs, dans lesquels tout calcul est effectué au moyen d’appels de fonctions (Miranda, Haskell, par exemple); et les langages fonctionnels impératifs (Lisp, ML), dans lesquels il est aussi permis d’effectuer des effets de bord (affectations), comme en Pascal ou en C. Pour prendre un exemple, en OCaml, on peut définir la factorielle par: let rec fact n = if n=0 then 1 else n*fact (n-1);; et calculer la factorielle de 10 en demandant:

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Control-Driven Data Flow

This paper presents CDDF, a model of computation underpinning the formal seman-tics of a number of parallel programming languages. CDDF integrates control ow elements for thedynamic construction of task graphs, and data ow elements to express dependent computationsand to decouple these using unbounded streams (Kahn process networks). It is a common groundto de ne the formal sema...

متن کامل

Machines, Interprètes

Ceci est la version 3 de la troisième partie du cours de lambda-calcul, datant du 02 juin 2014. La version 2 datait du 28 janvier 2011. La première version datait du 15 avril 2002. Merci à Hang Zhou et à Arthur Milchior. Aucune machine réelle n’exécute directement la relation de β-réduction du λcalcul, ou même d’un langage fonctionnel plus pratique comme Caml ou Haskell. Il est donc nécessaire ...

متن کامل

Encoding rewriting strategies in λ-calculi with patterns

We propose a patch to the pure pattern calculus: we claim that this is strictly more powerful to define the application of the match fail as the pure λ-term defining the boolean false instead of the identity function as it is done in the original version of the pure pattern calculus [JK09]. We show that using non algebraic patterns we are able to encode in a natural way any rewriting strategies...

متن کامل

Développement de systèmes à l’aide d’AADL - Ocarina/Cheddar

La construction de systèmes embarqués critiques temps réel suppose de définir conjointement les aspects fonctionnels (algorithmes de calcul, logique de décision) et les aspects non fonctionnels (paramètres de qualité de service, échéances). Afin de valider que le système embarqué critique temps réel est correct, il est souvent nécessaire de disposer d’une vue complète de l’architecture logiciel...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006